package com.example.day2.mvvm.utils;



import com.example.day2.entity.BannerResult;
import com.example.day2.entity.CommentFSParam;
import com.example.day2.entity.CommentFSResult;
import com.example.day2.entity.CommentResult;
import com.example.day2.entity.GiftResult;
import com.example.day2.entity.GoodsResult;
import com.example.day2.entity.GoodsTableResult;
import com.example.day2.entity.IconResult;
import com.example.day2.entity.LiveResult;
import com.example.day2.entity.LoginParam;
import com.example.day2.entity.LoginResult;
import com.example.day2.entity.NoLiveReuslt;
import com.example.day2.entity.NormalResult;
import com.example.day2.entity.StartParam;
import com.example.day2.entity.StartResult;
import com.example.day2.entity.StopResult;
import com.example.day2.entity.UpDateAddress;
import com.example.day2.entity.UpDateBrith;
import com.example.day2.entity.UpDateSexResult;
import com.example.day2.entity.VideoResult;
import com.example.day2.mvvm.base.GuanZhuParam;

import io.reactivex.Observable;
import okhttp3.MultipartBody;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import retrofit2.http.Query;

public interface ApiService {
    @GET(Const.GET_VIDEO)
    Observable<VideoResult> getVideo(@Query("currentPage")int currentPage , @Query("pageSize")int pageSize );
    @GET(Const.BANNER)
    Observable<BannerResult> getBanner();
    @POST(Const.LOGIN)
    Observable<LoginResult> getLogin(@Body LoginParam loginParam);
    @POST("/guanzhu/guanzhu")
    Observable<NormalResult> getNormal(@Body GuanZhuParam guanZhuParam);

    @POST("/fav/love")
    Observable<LiveResult> getLive(@Query("videoId") int videoId);
    @POST("/fav/nolove")
    Observable<NoLiveReuslt> getNoLive(@Query("videoId") int videoId);

    @GET("/comment/getCommentByVideoId")
    Observable<CommentResult> getCommentHQ(@Query("videoId")int videoId);
    @POST("/comment/comment")
    Observable<CommentFSResult> getCommentFS(@Body CommentFSParam commentFSParam);

    @POST("/guanzhu/noguanzhu")
    Observable<NormalResult> getNoGuanzhu(@Body GuanZhuParam guanZhuParam);
    //礼物
    @GET("/gift/json")
    Observable<GiftResult>  getGift();
    //直播
    @POST("/push/start")
    Observable<StartResult> getStart(@Body StartParam startParam);
    //下播
    @POST("/push/stop")
    Observable<StopResult> getStop();
    //获取点赞
    @POST("/fav/loveVideos")
    Observable<VideoResult> getLives();
    //修改性别
    @POST("/user/updateSex")
    Observable<UpDateSexResult> getSex(@Query("sex")String sex);
    //修改头像
    @Multipart
    @POST("/user/updateIcon")
    Observable<IconResult> getIcon(@Part MultipartBody.Part file);
    //修改生日
    @POST("/user/updateBrith")
    Observable<UpDateBrith> getBrith(@Query("brith")String brith );
    //修改地址
    @POST("/user/updateAddress")
    Observable<UpDateAddress> getAddress(@Query("address")String address);
    //商品信息
    @GET("/goods/info")
    Observable<GoodsResult> getGoods(@Query("category_id")int category_id,@Query("currentPage")int currentPage,@Query("pageSize")int pageSize);
    //分类
    @GET("/goods/category")
    Observable<GoodsTableResult> getGoodsTable();



}
